home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / examples / demo / dnd / dnd.cpp.z / dnd.cpp
Encoding:
C/C++ Source or Header  |  2002-04-08  |  5.9 KB  |  134 lines

  1. #include <qiconview.h>
  2. #include <qdragobject.h>
  3. #include <qlayout.h>
  4. #include <qmultilineedit.h>
  5.  
  6. #include "dnd.h"
  7. #include "styledbutton.h"
  8. #include "listview.h"
  9. #include "iconview.h"
  10. #include "images.h"
  11.  
  12. DnDDemo::DnDDemo( QWidget* parent, const char* name )
  13.     : DnDDemoBase( parent, name )
  14. {
  15.     buttonPixmap1->setEditor( StyledButton::PixmapEditor );
  16.     buttonPixmap2->setEditor( StyledButton::PixmapEditor );
  17.     buttonPixmap3->setEditor( StyledButton::PixmapEditor );
  18.     buttonPixmap4->setEditor( StyledButton::PixmapEditor );
  19.  
  20.     multiLine1->setTextFormat( RichText );
  21.     multiLine1->setMinimumHeight( 280 );
  22.     multiLine1->setText( QString( "<p><b>Faust</b> - <i>Goethe</i></p>"  )
  23.                          + "Habe nun, ach! Philosophie,<br>"
  24.                          + "Juristerei und Medizin,<br>"
  25.                          + "Und leider auch Theologie<br>"
  26.                          + "Durchaus studiert, mit hei▀em Bemⁿhn.<br>"
  27.                          + "Da steh ich nun, ich armer Tor!<br>"
  28.                          + "Und bin so klug als wie zuvor;<br>"
  29.                          + "Hei▀e Magister, hei▀e Doktor gar<br>"
  30.                          + "Und ziehe schon an die zehen Jahr<br>"
  31.                          + "Herauf, herab und quer und krumm<br>"
  32.                          + "Meine Schⁿler an der Nase herum-<br>"
  33.                          + "Und sehe, da▀ wir nichts wissen k÷nnen!<br>"
  34.                          + "Das will mir schier das Herz verbrennen.<br>"
  35.                          + "Zwar bin ich gescheiter als all die Laffen,<br>"
  36.                          + "Doktoren, Magister, Schreiber und Pfaffen;<br>"
  37.                          + "Mich plagen keine Skrupel noch Zweifel,<br>"
  38.                          + "Fⁿrchte mich weder vor H÷lle noch Teufel-<br>"
  39.                          + "Dafⁿr ist mir auch alle Freud entrissen,<br>"
  40.                          + "Bilde mir nicht ein, was Rechts zu wissen,<br>"
  41.                          + "Bilde mir nicht ein, ich k÷nnte was lehren,<br>"
  42.                          + "Die Menschen zu bessern und zu bekehren.<br>"
  43.                          + "Auch hab ich weder Gut noch Geld,<br>"
  44.                          + "Noch Ehr und Herrlichkeit der Welt;<br>"
  45.                          + "Es m÷chte kein Hund so lΣnger leben!<br>"
  46.                          + "Drum hab ich mich der Magie ergeben,<br>"
  47.                          + "Ob mir durch Geistes Kraft und Mund<br>"
  48.                          + "Nicht manch Geheimnis wⁿrde kund;<br>"
  49.                          + "Da▀ ich nicht mehr mit saurem Schwei▀<br>"
  50.                          + "Zu sagen brauche, was ich nicht wei▀;<br>"
  51.                          + "Da▀ ich erkenne, was die Welt<br>"
  52.                          + "Im Innersten zusammenhΣlt,<br>"
  53.                          + "Schau alle Wirkenskraft und Samen,<br>"
  54.                          + "Und tu nicht mehr in Worten kramen. <br>" );
  55.  
  56.     multiLine2->setTextFormat( RichText );
  57.     multiLine2->setMinimumHeight( 280 );
  58.     multiLine2->setText( QString( "<p><b>To Milton</b> - <i>Oscar Wilde</i></p>" )
  59.                          + "Milton!  I think thy spirit hath passed away<br>"
  60.                          + "From these white cliffs and high-embattled towers;<br>"
  61.                          + "This gorgeous fiery-coloured world of ours<br>"
  62.                          + "Seems fallen into ashes dull and grey,<br>"
  63.                          + "And the age changed unto a mimic play<br>"
  64.                          + "Wherein we waste our else too-crowded hours:<br>"
  65.                          + "For all our pomp and pageantry and powers<br>"
  66.                          + "We are but fit to delve the common clay,<br>"
  67.                          + "Seeing this little isle on which we stand,<br>"
  68.                          + "This England, this sea-lion of the sea,<br>"
  69.                          + "By ignorant demagogues is held in fee,<br>"
  70.                          + "Who love her not:  Dear God! is this the land<br>"
  71.                          + "Which bare a triple empire in her hand<br>"
  72.                          + "When Cromwell spake the word Democracy!<br>" );
  73.  
  74.  
  75.     items.insert( "copy", IconItem( "Copy", "editcopy.xpm" ) );
  76.     items.insert( "cut", IconItem( "Cut", "editcut.xpm" ));
  77.     items.insert( "paste", IconItem( "Paste", "editpaste.xpm" ));
  78.     items.insert( "raise", IconItem( "Raise", "editraise.xpm" ));
  79.     items.insert( "lower", IconItem( "Lower", "editlower.xpm" ));
  80.     items.insert( "new", IconItem( "New", "filenew.xpm" ));
  81.     items.insert( "load", IconItem( "Load", "fileopen.xpm" ));
  82.     items.insert( "save", IconItem( "Save", "filesave.xpm" ));
  83.     items.insert( "undo", IconItem( "Undo", "undo.xpm" ));
  84.     items.insert( "redo", IconItem( "Redo", "redo.xpm" ));
  85.     items.insert( "delete", IconItem( "Delete", "editdelete.xpm" ));
  86.     items.insert( "help", IconItem( "Help", "help.xpm" ));
  87.     items.insert( "home", IconItem( "Home", "home.xpm" ));
  88.  
  89.     listView->addColumn( "Actions", 240 );
  90.     listView->setColumnWidthMode( 0, QListView::Maximum );
  91.  
  92.     QMap<QString,IconItem>::Iterator it;
  93.     for( it = items.begin(); it != items.end(); ++it ) {
  94.         IconItem item = it.data();
  95.  
  96.         QIconViewItem *iitem = new IconViewItem( iconView, item.name(), *item.pixmap(), it.key() );
  97.         iitem->setRenameEnabled( TRUE );
  98.         QListViewItem *litem = new ListViewItem( listView, item.name(), it.key() );
  99.         litem->setPixmap( 0, *item.pixmap() );
  100.     }
  101. }
  102.  
  103. DnDDemo::~DnDDemo()
  104. {
  105.  
  106. }
  107.  
  108. IconItem::IconItem( const QString& name, const QString& icon )
  109. {
  110.     _name = name;
  111.     _pixmap = loadPixmap( icon );
  112. }
  113.  
  114. QPixmap IconItem::loadPixmap( const QString& name )
  115. {
  116.     Embed *e = &embed_vec[ 0 ];
  117.     while ( e->name ) {
  118.     if ( QString( e->name ) == name ) {
  119.         QImage img;
  120.         img.loadFromData( (const uchar*)e->data, e->size );
  121.         QPixmap pix;
  122.         pix.convertFromImage( img );
  123.         return pix;
  124.     }
  125.     e++;
  126.     }
  127.     return QPixmap();
  128. }
  129.  
  130. IconItem DnDDemo::findItem( const QString& tag )
  131. {
  132.     return items[ tag ];
  133. }
  134.